package cn.cocho.android.mc.util;

import android.util.DisplayMetrics;

import cn.cocho.android.mc.storage.ApplicationCache;

/**
 * 分辨率相关的类，获取屏幕分辨率及dp和px之间的相互转化
 * 
 * @author hsx
 * @time 2013-5-6下午02:31:39
 */
public class DensityUtils {

	/**
	 * 计算屏幕的分辨率
	 * 
	 * @return
	 * @return DisplayMetrics
	 * @author hsx
	 * @time 2013-5-6上午09:55:35
	 */
	public static DisplayMetrics getScreen() {
		DisplayMetrics dm = ApplicationCache.context.getResources().getDisplayMetrics();
		return dm;
	}

	/**
	 * 获得屏幕分辨率的宽，单位为px
	 * 
	 * @return
	 * @return int
	 * @author hsx
	 * @time 2013-5-6上午10:03:41
	 */
	public static int getScreenWidth() {
		DisplayMetrics dm = getScreen();
		return dm.widthPixels;
	}

	/**
	 * 获得屏幕分辨率的高，单位为px
	 * 
	 * @return
	 * @return int
	 * @author hsx
	 * @time 2013-5-6下午02:27:31
	 */
	public static int getScreenHeight() {
		DisplayMetrics dm = getScreen();
		return dm.heightPixels;
	}

	 /** 
     * 根据手机的分辨率从 dp 的单位 转成为 px(像素) 
     */  
    public static int dpToPx(float dpValue) {  
        final float scale = ApplicationCache.context.getResources().getDisplayMetrics().density;  
        return (int) (dpValue * scale + 0.5f);  
    }  
  
    /** 
     * 根据手机的分辨率从 px(像素) 的单位 转成为 dp 
     */  
    public static int pxToDp(float pxValue) {  
        final float scale = ApplicationCache.context.getResources().getDisplayMetrics().density;  
        return (int) (pxValue / scale + 0.5f);  
    }  
	
}